local function new(c, ...)
	-- 创建实例
	local instance = {}
	-- 实例访问成员在c类的元表里找
	setmetatable(instance, { __index = getmetatable(c).__newindex })
	-- 实例的 初始化
	if type(instance.init) == 'function' then instance:init(...) end
	-- 实例的 汉化函数
	if type(instance.汉化) == 'function' then  instance:汉化(...) end

	return instance
end

-- __index 和 __newindex 都是元方法，只存在元表中
-- __index 子(母)表没有，则会调用元表的 __index  table/func(mt, k) （访问）
-- __newindex 子(母)表没有， 则会调用元表的 __newindex table/func(mt, k, v)  （赋值）（子表都没有这个key，肯定不变）
local function class()
    local c = {}
	setmetatable(c, {
        -- 定义函数时
        __newindex = {},
        -- t:子(母)表 也就是c
        __call = function (t, ...) return new(t, ...) end
    })
	return c
end


return class